﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WChat {
    public class GetIcon {
        private Image img;
        private int i = 0;
        public List<WXUser> lisuser;
        private Dictionary<WXUser, Image> Icon = new Dictionary<WXUser, Image>();
        private System.Threading.Timer ti;
        public void  BatchDownloadIcon(List<WXUser> ListUser) {
            ti = new System.Threading.Timer(new TimerCallback(timer_Elapsed), null, 0, 2);
            lisuser = ListUser;
            //for (int i = 0; i < ListUser.Count; i++) {
            //    if (ListUser[i].Icon!=null) {
            //        Icon.Add(ListUser[i], ListUser[i].Icon);
            //    }
            //    //get: img = ListUser[i].Icon;
            //    //if (img == null) {
            //    //    goto get;
            //    //}
            //    //Icon.Add(ListUser[i], ListUser[i].Icon);
            //}
            //MessageBox.Show("加载完成");

            //    img = user.Icons;
            //   Icon.Add(user, img);

            //  Thread pic_dowen = new Thread(ss);  //在这里使用线程保存大图
            //  pic_dowen.Start();

            //num = num + 1;
            // MessageBox.Show(img.ToString());
            //   }
            //while (true) {

            //    for (int i = 0; i < ListUser.Count; i++) {
            //        img = ListUser[i].Icons;
            //        if (img != null) {
            //            Icon.Add(ListUser[i], img);
            //            ListUser.Remove(ListUser[i]);
            //        }
            //        MessageBox.Show(ListUser.Count.ToString());
            //   }

        }

        void timer_Elapsed( object sender ) {
            //
            for (int i = 0; i < lisuser.Count; i++) {
                if (lisuser[i].Icon != null && !Icon.ContainsKey(lisuser[i])) {
                    Icon.Add(lisuser[i], lisuser[i].Icon);
                    //
                    lisuser.Remove(lisuser[i]);
                }
                // 
            }
            MessageBox.Show("done");
        }

            //MessageBox.Show("22312");
            //for (int i = 0; i < lisuser.Count; i++) {
            //    img = lisuser[i].Icons;
            //    if (img != null) {
            //        Icon.Add(lisuser[i], img);
            //        lisuser.Remove(lisuser[i]);
            //    }
            //}
            // }

            void ss() {
            for (int i = 0; i < lisuser.Count; i++) {
                img = lisuser[i].Icon;
                if (img != null && !Icon.ContainsKey(lisuser[i])) {
                    Icon.Add(lisuser[i], img);
                }
            }
        }


        public void GetPic( WXUser user ) {
              img = user.Icon;
           if (img == null) {
                i++;
               // MessageBox.Show("数据:"+i.ToString());
            }
            Icon.Add(user, img);
        }


        private void Ti_Tick( object sender, EventArgs e ) {
            MessageBox.Show("定时器运行");
            for (int i = 0; i < lisuser.Count; i++) {
                get: img = lisuser[i].Icons;
                if (img == null) {
                    goto get;  
                }
                Icon.Add(lisuser[i], img);
                lisuser.Remove(lisuser[i]);
            }
       }

     public Image GetIcons(WXUser user) {
            if (Icon[user]==null) {

            }
            else {
                return Icon[user];
            }
           return null;
        }

        //void dd() {
        //    get: img = lisuser[num].Icon;
        //    if (img == null) {
        //        goto get;
        //    }
        //    Icon.Add(lisuser[num], img);
        //}
    }
}
